#ifndef FOLLOWS_H
#define FOLLOWS_H

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

class FollowsDataRow {
public:
	//constructor
	FollowsDataRow(int beingFollowed, int follower);

	void setBeingFollowed(int beingFollowed);
	void setFollower(int follower);
	int getBeingFollowed();
	int getFollower();

private:
	int beingFollowed; //index of the respective statements
	int follower;
};

class Follows {
public:
	//constructor
	Follows();

	static void setFollowsRelation(int beingFollowed, int follower);
	static bool isFollowsRelation(int beingFollowed, int follower);
	static bool isFollowsStarRelation(int beingFollowed, int follower);
	static int getFollower(int beingFollowed);
	static int getBeingFollowed(int follower);
	static vector<int> getFollowerStar(int beingFollowed);
	static vector<int> getBeingFollowedStar(int follower);

	//for unit testing
	static FollowsDataRow getLastDataRowFromTable();

private:
	static vector<FollowsDataRow> table;
};

#endif